home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ein
/
sources
/
memsrc.lzh
/
MEM
/
MAIN.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-09-05
|
10KB
|
365 lines
/*<Header>==============================================================
*
* âüâéâèÄcù╩ò\Ī / "MAIN.C"
*
* [ EIN(tm) project : âTâôâvâïâvâìâOâëâÇ ]
*
* COPYRIGHT Nam 1994, All rights reserved.
*
* özòtüEægì₧üEëⁿò╧üEÅñùÿùpé╖é╫é─Ä⌐ùRüBé╜é╛é╡û│ò█Å╪é┴é╖
*
*-----------------------------------------------------------------------
* V1.0L01â┐ 94.04.15/Nam âvâìâgâ^âCâv
* V1.0L30 94.07.19/Nam EIN(TM)î÷èJö┼
* V1.0L31 94.09.05/Nam GM_QUITÄ₧é╔Ä⌐ò¬é┼WINDOWé≡Å┴ïÄ
*</Header>==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <snd.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#include <egb.h>
//#include <file_dlg.h>
//#include <tifflib.h>
#include <msdos.cf>
#include <loader.h>
#include <math.h>
#include <io.h>
#include <guidbg.h>
#include <wgb.h>
// üª é▒é▒é▄é┼é¬ò╜ï╧ôIé╔Ägùpé│éΩéΘâwâbâ_
#include "..\ein\eintm.h" // EIN(TM)è╓ÿAâëâCâuâëâèé╠âwâbâ_
#define ERROR (-1)
int ID_ICON[10];
int ID_PANEL[20];
int dispMode = 0; // 0:icon / 1:win
/*= âèâWâàü[âÇùpÉ▌ÆΦ=================================================*/
FRAME RSM_ICONFR;
FRAME RSM_PANELFR;
char RSMID[]="%%% MemoryEmptyManager icon %%%";
char RSMTITLE[]="âüâéâèâ}âlü[âWââ V0.1 L31";
/*===================================================================*/
void ( *GV_defIdleTask )() ;
MMICTRL mmic = {
SCREEN16 | SCREENIGNORE, // resolution
SCREENUNUSED,
0, SCREENAVAILABLE, 0, // write_page,display_page,priority
SCREENAVAILABLE, // mode
SCREENEXPAND, // vram_x
0,0,0,0, // size,*ptr,asize,*atpr
0,0,0,0, // frame
-32767, // move
-32767,
32767,
32767,
15,8,7,15 // color
} ;
/*===================================================================*/
/* âüâCâôâïü[âv */
/*===================================================================*/
void main()
{
extern int APL_init() ;
int kobj;
// Åëè·ë╗Åêù¥
if (MMI_Open( &mmic ) == NOERR){
// ô±ÅdïNô«é╠check
if ( (kobj = MMI_CallMessage( MMI_GetApliId(), GM_QUERYID, QM_KIND, 1)) > NOERR ){
MMI_CallMessage( MMI_GetApliId(), GM_SWITCH, FALSE, kobj );
} else {
// âAâCâhâïâ^âXâNé╔ôoÿ^
setIdleTask() ;
// Åëè·ë╗é╔ɼî≈é╖éΩé╬âüâCâôâïü[âvé╔ôⁿéΘ.
if ( APL_init()==NOERR )
MMI_ExecSystem() ;
// âAâCâhâïé╠ë≡Å£
resetIdleTask() ;
// âEâBâôâhâDÅ┴ïÄ(üªSHELLé╔Å┴ïÄé│é╣éΘé╞Æxéóé╠é┼)
eraseWin();
}
}
// ÅIù╣Åêù¥
MMI_Close() ;
}
/*===================================================================*/
/* Åëè·ë╗Åêù¥ */
/*===================================================================*/
int APL_init()
{
extern int userFunc();
extern MMIINIT initDataRES_ICON ;
extern MMIINIT initDataRES_PANL ;
extern int ICONmaxId;
extern unsigned char *ICONTbl[];
extern int memLimit; // âAâjâüü[âVâçâôé≡èJÄné╖éΘÄcâüâéâè(byte)
HYPER hyp;
register int ret ;
// î╗ì▌é╠ÄcéΦâüâéâèù╩ĵô╛
memLimit = EIN_checkMem();
if ((ret = MMI_initHyper()) < 0) // ânâCâpü[î^
return ret;
if ((ret = MMI_initDialogL40()) < 0) // â_âCâAâìâOî^
return ret;
// if ((ret = MMI_initAlertL40()) < 0) // âAâëü[âgî^
// return ret;
if ((ret = MMI_initMessageL40()) < 0) // âüâbâZü[âWî^
return ret;
// if ((ret = MMI_initMenuL40()) < 0) // âüâjâàü[î^
// return ret;
if ((ret = MMI_initButtonL40()) < 0) // â{â^âôî^
return ret;
if ((ret = MMI_initDrawButtonL40()) < 0) // âhâìâEâ{â^âôî^
return ret;
// if ((ret = MMI_initToggleIconL40()) < 0) // âgâOâïâ{â^âôî^
// return ret;
if ((ret = MMI_initIconL40()) < 0) // âAâCâRâôî^
return ret;
if ((ret = MMI_initNumBoxL40()) < 0) // ÉöÆlôⁿù═boxî^
return ret;
// if ((ret = MMI_initScrollBarL40()) < 0) // âXâNâìü[âïâoü[î^
// return ret;
// if ((ret = MMI_initTextL40()) < 0) // âeâLâXâgî^
// return ret;
// if ((ret = MMI_initMenuItemL40()) < 0) // âüâjâàü[âAâCâeâÇî^
// return ret;
if ((ret = MMI_initWindowL40()) < 0) // âEâBâôâhâEî^
return ret;
// âfü[â^é╠ôoÿ^
if ((ret = MMI_Init(&initDataRES_ICON)) < 0)
return ret ;
if ((ret = MMI_Init(&initDataRES_PANL)) < 0)
return ret ;
/*----------------------------------*/
/* âAâCâRâôôoÿ^ */
/*----------------------------------*/
MMI_SetIconTable( ICONTbl, ICONmaxId ) ;
// 256,32ké╠Ä₧é╠GUIÉFé≡É▌ÆΦ
EIN_initGuiColor();
// âEâBâôâhâEù▐é≡ATTACHé╖éΘ
MMI_SendMessage( ID_ICON[0], MM_ATTACH, 1, MMI_GetBaseObj() ) ;
// âXâCâbâ`ââü[æ╬ë₧è╓Éöé╠ôoÿ^
MMI_SendMessage( MMI_GetBaseObj(), MM_SETEXEC, 1, userFunc ) ;
// â^âCâgâïé╠ôoÿ^
MMI_CallMessage( MMI_GetApliId(), GM_TITLE, (int)RSMTITLE, 0 );
/*----------------------------------*/
/* âèâWâàü[âÇô╟é▌ì₧é▌ (üªé╠é┬éóé╜Åêù¥é═òKé╕ìsé┴é─é¡é╛é│éó) */
/*----------------------------------*/
char work[RSMWORKSIZE]; // âèâWâàü[âÇâ}âlü[âWââé╠âÅü[âNâGâèâA
char buf[1024];
char *ptr;
int size, x, y;
// üªâèâWâàü[âÇâ}âlü[âWââé╠Åëè·ë╗(âAâvâèé╠IDâ^âOôoÿ^)
EIN_rsmInit( work, RSMID );
// üªô╟é▌ì₧é▌âoâbâtâ@É▌ÆΦ
EIN_rsmBufSet( work, buf, 1023 );
// üªâèâWâàü[âÇÅεò±ô╟é▌ì₧é▌
size = EIN_rsmLoad( work );
#ifdef DEBUG
printf(" resume size(%d)\n",size);
#endif
if ( size > 0 ){
// ICONò\Īê╩Æu
if ( ((ptr = strstr(buf,"\nICON: ")) != NULL ) &&
(sscanf(ptr,"\nICON: %d %d\n", &x, &y) > 1 ) ){
MMI_SendMessage( ID_ICON[0], MM_GETHYPER, 1, &hyp );
RSM_ICONFR.lupx = x;
RSM_ICONFR.lupy = y;
RSM_ICONFR.rdwx = x+(hyp.fr.rdwx-hyp.fr.lupx);
RSM_ICONFR.rdwy = y+(hyp.fr.rdwy-hyp.fr.lupy);
#ifdef DEBUG
printf("ICON: move to (%d,%d)\n", x, y);
#endif
// é¿éóé╚éΦé│é±ï╓Ä~
if ( x<-31 ){
x=0;
}
if ( y<-31 ){
y=0;
}
MMI_SendMessage( ID_ICON[0], MM_MOVE, 1, &RSM_ICONFR ) ;
}
} else {
#ifdef DEBUG
printf("Can't find resume file.\n");
#endif
}
/*----------------------------------*/
/* âèâWâàü[âÇô╟é▌ì₧é▌ÅIù╣ */
/*----------------------------------*/
// öwîié≡ò\Īé╖éΘ
MMI_SendMessage( MMI_GetBaseObj(), MM_SHOW, 0 ) ;
// âoâbâNâOâëâEâôâhé╔é╖éΘ(üªé▒é╠âTâôâvâïé╠é▌)
MMI_CallMessage( MMI_GetApliId(), GM_SLEEP, 0 ,0 ) ;
return NOERR ;
}
/*===================================================================*/
/* âèâWâàü[âÇÅεò±ìXÉV (üªé¬é┬éóé╜Åêù¥é═òKé╕ìsé┴é─ë║é│éó) */
/*===================================================================*/
void SaveResumeFile()
{
extern int func_Angel();
extern int memLimit; // âAâjâüü[âVâçâôé≡èJÄné╖éΘÄcâüâéâè(byte)
char work[RSMWORKSIZE];
char buf[1024];
char aplpath[128];
HYPER hyp;
int ret;
// ICONâpâ^ü[âôé≡"Å╕ôV"é╔
func_Angel();
// ÿgì└òWé≡ô╛éΘ
MMI_SendMessage( ID_ICON[0], MM_GETHYPER, 1, &hyp );
// ê┌ô«é╡é─éóé╜éτâZü[âu
if ( (RSM_ICONFR.lupx != hyp.fr.lupx) ||
(RSM_ICONFR.lupy != hyp.fr.lupy) ){
// üªâ}âlü[âWââÅëè·ë╗
EIN_rsmInit( work, RSMID );
// üªâoâbâtâ@É▌ÆΦ(âAâvâèÄ»ò╩ID,ìXÉVÄ₧ìÅé═Ä⌐ô«É▌ÆΦé│éΩé▄é╖)
EIN_rsmBufSet( work, buf, 1023 );
// üªâAâvâèâfâBâîâNâgâèò█æ╢
MMI_CallMessage( MMI_GetApliId(), GM_QUERYID, QM_PATH, (int)aplpath );
EIN_rsmBufPrintf( work, "APLPATH: %s", aplpath );
// üªâAâvâèû╝ò█æ╢
EIN_rsmBufPrintf( work, "TITLE: %s", RSMTITLE );
// üªâRâüâôâgò█æ╢
EIN_rsmBufCat( work, "COMMENT: ÄcéΦâüâéâèù╩é╠ò\ĪüEæÇì∞é≡ìséªéΘâcü[âïé┼é╖" );
// âAâCâRâôê╩Æuò█æ╢
EIN_rsmBufPrintf( work, "ICON: %d %d", hyp.fr.lupx, hyp.fr.lupy );
// // ÄcéΦâüâéâèò\ĪèJÄnâTâCâYò█æ╢
// EIN_rsmBufPrintf( work, "MEMLIMIT: %d", memLimit );
// üªâoâbâtâ@ÅIÆ[(^A)É▌ÆΦ
EIN_rsmBufTail( work );
// üªâoâbâtâ@é≡âZü[âu
ret = EIN_rsmSave( work );
#ifdef DEBUG
printf(" resume save size(%d) ptr:(%d,%d)\n",ret, hyp.fr.lupx, hyp.fr.lupy);
#endif
RSM_ICONFR.lupx = hyp.fr.lupx;
RSM_ICONFR.lupy = hyp.fr.lupy;
RSM_ICONFR.rdwx = hyp.fr.rdwx;
RSM_ICONFR.rdwy = hyp.fr.rdwy;
}
}
/*===================================================================*/
/* âCâxâôâgâïü[âvè╓Éö